package top.lywivan.array.inf;

/**
 * @author :lyw.ivan
 * @date :Created in 2022/5/25
 * @description :
 * @version: 1.0
 */
public interface List {
    /**
     * 返回容器元素个数
     * @return
     */
    int size();

    /**
     * 判断容器是否为空
     * @return
     */
    boolean isEmpty();

    /**
     * 查询元素在集合中的索引下标
     * @param o
     * @return 不存在时，返回-1
     */
    int indexOf(int o);

    /**
     * 判断容器是否存在某一特定元素
     * @param e
     * @return
     */
    boolean contains(int e);

    /**
     * 将元素添加到容器末尾
     * @param e
     * @return
     */
    boolean add(int e);

    /**
     * 将数据添加到指定位置，之后的元素以此后移
     * @param index
     * @param element
     */
    void add(int index,int element);

    /**
     * 用指定元素代替指定位置的数据
     * @param index
     * @param element
     * @return
     */
    int set(int index,int element);

    /**
     * 获取指定位置的元素
     * @param index
     * @return
     */
    int get(int index);

    /**
     * 移除指定位置的元素，同时元素前移
     * @param index
     * @return
     */
    int remove(int index);

    /**
     * 清除容器中的元素
     */
    void clear();
}
